50 REM ** INITIALIZE ** 52 DIM CL(20,40) 53 PRINT"[147]":SYS65517:WI=PEEK(781):IFWI=22THENWI=0:POKE36879,238:SS=2:PH=.5 54 IF WI=0THENAA$="VIC":BB$="VIC":GOTO60 55 POKE53280,1:POKE53281,15:SS=12:WI=8:PH=1 57 AA$="64[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]":BB$="64" 60 IF WI=0 THEN CL(4,18)=1:CL(4,31)=2:CL(10,18)=3:CL(10,31)=4:GOTO80 63 FORA=6TO12STEP6:FORB=17TO33STEP16:S=646:POKES,SS 70 T=T+1:CL(A,B)=T:NEXTB,A 80 PRINT"";:PRINTTAB(WI+5)"[144]SHAPE MATCH" 190 GOSUB3000:REM ** INSTRUCTIONS ** 200 GOSUB1000:REM ** PRINT BOARD ** 210 FORT=1TO1000:NEXT 300 REM ******************************* 302 REM ** SELECT SHAPES ** 305 REM ******************************* 306 K=RND(-TI) 310 K=INT(RND(0)*4)+1:IFK=KKTHEN310 320 REM 340 FORT=1TO3:GOSUB2000:BO$=SH$(T):A=4+T:B=18:PRINT"":GOSUB1170:NEXT T 345 GOSUB1180:REM ** DELAY ** 348 IFWI=0THENFORT=1TO3:GOSUB2100:BO$=SH$(T):A=4+T:B=32:PRINT"" 349 IFWI=0THENGOSUB1170:NEXTT:GOTO355 350 FORT=1TO3:GOSUB2100:BO$=SH$(T):A=4+T:B=28:PRINT"":GOSUB1170:NEXT T 355 GOSUB1180 360 FORT=1TO3:GOSUB2200:BO$=SH$(T):A=10+T:B=18:PRINT"":GOSUB1170:NEXT T 365 GOSUB1180 370 FORT=1TO3:GOSUB2300:BO$=SH$(T):A=10+T:B=28:PRINT"":GOSUB1170:NEXT T 375 GOSUB1180 380 FORT=1TO3 383 ONKGOSUB2000,2100,2200,2300 385 BO$=SH$(T):A= 8+T:B=3:PRINT"":GOSUB1170:NEXT T:KK=K 500 REM 550 REM END 600 REM ******************************* 602 REM ** MOVE CURSOR ** 604 REM ******************************* 605 PRINT"":C=1:FORNT=1TO10 610 FORT=1TO15:BO$=CHR$(63):IFT/2=INT(T/2)THEN BO$=CHR$(18)+CHR$(63)+CHR$(146) 613 IF WI=0THEN ON C GOTO 660,673,683,687 615 ONC GOTO670,675,680,685 620 GOSUB1170:PRINT"":FORTT=1TO 75: NEXTTT:GOTO700 625 NEXT T 630 BO$=CHR$(32):GOSUB1170:PRINT"": FORTT=1TO 75:NEXTTT:C=C+1 640 IFC>4THENC=1 650 NEXTNT:GOTO600:REM ** REPEAT ** 660 A=4:B=18:L=1:GOTO620 670 A=6:B=17:L=1:GOTO620 673 A=10:B=18:L=2:GOTO620 675 A=12:B=17:L=2:GOTO620 680 A=6:B=33:L=3:GOTO620 683 A=4:B=31:L=3:GOTO620 685 A=12:B=33:L=4:GOTO620 687 A=10:B=31:L=4:GOTO620 700 REM ******************************* 702 REM ** CHECK FOR RESPONSE ** 704 REM ******************************* 710 GETA$:IFA$=""THEN 625 715 IF A$="Q"THEN PRINT"[147]":END 720 IFCL(A,B)=K THEN800:REM CORRECT 740 GOTO850: REM ** WRONG ** 800 REM ******************************* 802 REM ** CORRECT ANSWER ** 804 REM ******************************* 810 BO$="YES! THAT'S RIGHT!":A=18:GOSUB1174:PRINT"" 820 BO$="[152][144] PRESS ANY KEY [146]":A=20:GOSUB1174:PRINT"" 825 GETA$:IFA$=""THEN825 830 FORA=1TO23:BO$=" ":B=0:GOSUB1170 835 PRINT"":NEXT 840 GOTO200:REM ** RE-PRINT BOARD ** 850 REM ******************************* 852 REM ** WRONG ANSWER ** 854 REM ******************************* 855 BO$=CHR$(32):GOSUB1170:PRINT"" 860 BO$="[152][144]SORRY...TRY AGAIN...[146]": A=18:B=10:GOSUB1174:PRINT"" 865 FORW=1TO1000:NEXT 870 BO$=" ":A=18: B=10:GOSUB1174:PRINT"" 875 C=C+1:IFC>4THENC=1 880 GOTO 625 999 REM ****************************** 1000 PRINT"[147]" 1015 IFWI=0THENBO$=" [176][192][192][192][192][192][178][192][192][192][192][192][174]":A=3:B=15:GOSUB 1170:PRINT"":GOTO1030 1020 A=3:B=15:BO$="[176][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][174][146]":GOSUB1170:PRINT"" 1025 REM 1030 FORT=1TO5:A=3+T:B=15 1035 IF WI=0THENBO$=" [221][146] [221][146] [221][146]":GOSUB1170:PRINT"":GOTO1045 1040 BO$="[194][146] [194][146] [194][146]":GOSUB1170:PRINT"" 1045 NEXT T 1047 IFWI=0THENA=9:B=15:BO$=" [171][192][192][192][192][192][219][192][192][192][192][192][179][146]":GOSUB1170:PRINT"":GOTO1060 1050 A=9:B=15:BO$="[171][192][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][192][179][146]":GOSUB1170:PRINT"" 1060 FORT=1TO5:A=9+T:B=15 1065 IFWI=0THENBO$=" [221][146] [221][146] [221][146]":GOSUB1170:PRINT"":GOTO1073 1070 BO$="[194][146] [194][146] [194][146]":GOSUB1170:PRINT"" 1073 NEXTT 1078 A=15:B=15:IFWI=0THENBO$=" [173][192][192][192][192][192][177][192][192][192][192][192][189][146]":GOSUB1170:PRINT"":GOTO1090 1080 BO$="[173][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][189][146]":GOSUB1170:PRINT"" 1090 BO$=T$:A=20:B=13:GOSUB1170:PRINT"" 1093 PRINTTAB(WI)" TYPE (Q) TO QUIT." 1095 RETURN 1100 REM **************************+*** 1110 REM ** PRINT ** 1111 REM ****************************** 1170 FORI=1TOA:PRINT"";:NEXT:PRINTTAB(B*PH)BO$:RETURN 1174 FORI=1TOA:PRINT"";:NEXT:PRINTTAB(WI)BO$:RETURN 1175 REM 1180 FORX=1TO500:NEXT:RETURN 2000 REM 2015 SH$(1)=" [184][184][184]" 2020 SH$(2)="  " 2025 SH$(3)="  ":RETURN 2100 REM 2115 SH$(1)="[156] " 2120 SH$(2)=" " 2125 SH$(3)=" ":RETURN 2200 REM 2215 SH$(1)="[144][169]" 2220 SH$(2)="[169] " 2225 SH$(3)="[169] ":RETURN 2300 REM 2315 SH$(1)="[169][223]" 2320 SH$(2)="[169] [223]" 2325 IFWI=8THENSH$(3)="[169] [223]":RETURN 2330 SH$(3)="":RETURN 3000 PRINT"";:PRINTTAB(WI)" INSTRUCTIONS (Y/N) ?" 3020 GETA$:IFA$=""THEN3020 3030 IFA$="N"THEN3200 3040 IFA$="Y"THENPRINT"[147]":GOTO 3100 3050 GOTO3020 3100 PRINTTAB(WI)"IN SHAPE MATCH,THE "AA$;:PRINTTAB(WI)"WILL PRINT A SHAPE ON" 3110 PRINTTAB(WI)"THE LEFT SIDE OF THE":PRINTTAB(WI)"SCREEN. THE STUDENT" 3115 PRINTTAB(WI)"WILL FIND 4 DIFFERENT":PRINTTAB(WI)"SHAPES ON THE RIGHT" 3120 PRINTTAB(WI)"SIDE OF THE SCREEN,":PRINTTAB(WI)"ONE OF WHICH WILL" 3130 PRINTTAB(WI)"MATCH THE SHAPE ON":PRINTTAB(WI)"THE LEFT." 3140 PRINTTAB(WI)"WHEN THE ?[146] IS":PRINTTAB(WI)"NEXT TO THE SHAPE HE" 3150 PRINTTAB(WI)"OR SHE THINKS IS":PRINTTAB(WI)"CORRECT, THE STUDENT" 3155 PRINTTAB(WI)"SHOULD PRESS ANY KEY." 3156 PRINTTAB(WI)"THE ";BB$;" WILL EVALUATE" 3160 PRINTTAB(WI)"THE ANSWER AND LET":PRINTTAB(WI)"THE STUDENT KNOW HOW" 3165 PRINTTAB(WI)"HE DID. TYPE Q[146] TO":PRINTTAB(WI)"END THE PROGRAM." 3190 PRINTTAB(WI)"PRESS ANY KEY TO PLAY"; 3195 GETA$:IFA$=""THEN3195 3196 PRINT"[147]"CHR$(142) 3200 RETURN